﻿using System;
using Wizard.Runtime;

namespace Wizard.Runtime
{
    public interface IHasValue
    {
        Type ValueType { get; }
        Object GetValueObject(IRunContext context);
        event ValueChangedEvent ValueChanged;
    }

    public interface IHasValue<ResultType> : IHasValue
    {
        bool IsModified { get; }
        ResultType Value(IRunContext context);
    }

    public delegate void ValueChangedEvent(object sender, IValueChangedEventArgs e);
}